DEFINE CLASS cl_otros_aportes as Custom

	anulada=0
	concepto=""
	cuit_cuil=0
	direccion=""
	id_cuenta=0
	id_talonario=0
	monto=0.0
	nro_comprobante=0
	razon_social=""
	fecha=DATE()
	
PROCEDURE getanulada
RETURN this.anulada
ENDPROC

PROCEDURE setanulada
LPARAMETERS nuevo
this.anulada=nuevo
ENDPROC

PROCEDURE getconcepto
RETURN this.concepto
ENDPROC

PROCEDURE setconcepto
LPARAMETERS nuevo
this.concepto=nuevo
ENDPROC

PROCEDURE getcuit_cuil
RETURN this.cuit_cuil
ENDPROC

PROCEDURE setcuit_cuil
LPARAMETERS nuevo
this.cuit_cuil=nuevo

PROCEDURE getdireccion
RETURN this.direccion
ENDPROC

PROCEDURE setdireccion
LPARAMETERS nuevo
this.direccion=nuevo
ENDPROC

PROCEDURE getid_cuenta
RETURN this.id_cuenta
ENDPROC

PROCEDURE setid_cuenta
LPARAMETERS nuevo
this.id_cuenta=nuevo
ENDPROC

PROCEDURE getid_talonario
RETURN this.id_talonario
ENDPROC

PROCEDURE setid_talonario
LPARAMETERS nuevo
this.id_talonario=nuevo
ENDPROC

PROCEDURE getmonto
RETURN this.monto
ENDPROC

PROCEDURE setmonto
LPARAMETERS nuevo
this.monto=nuevo
ENDPROC

PROCEDURE getrazon_social
RETURN this.razon_social
ENDPROC

PROCEDURE setrazon_social
LPARAMETERS nuevo
this.razon_social=nuevo
ENDPROC

PROCEDURE getnro_comprobante
RETURN this.nro_comprobante
ENDPROC

PROCEDURE setnro_comprobante
LPARAMETERS nuevo
this.nro_comprobante=nuevo
ENDPROC

PROCEDURE registraAporte
USE data1/otros_aportes
INSERT INTO otros_aportes(anulada,concepto,cuit_cuil,direccion,id_cuenta,id_talonario,monto,nro_comprobante,razon_social,fecha) VALUES (this.anulada,this.concepto,this.cuit_cuil,this.direccion,this.id_cuenta,this.id_talonario,this.monto,this.nro_comprobante,this.razon_social,this.fecha)
USE IN otros_aportes
ENDPROC

PROCEDURE obtieneaporte
USE data1/otros_aportes
SELECT * FROM otros_aportes WHERE id_talonario=this.id_talonario AND nro_comprobante=this.nro_comprobante INTO CURSOR cur
this.anulada=cur.anulada
this.concepto=cur.concepto
this.cuit_cuil=cur.cuit_cuil
this.direccion=cur.direccion
this.id_cuenta=cur.id_cuenta
this.monto=cur.monto
this.razon_social=cur.razon_social
USE IN otros_aportes
ENDPROC

PROCEDURE reporteIngresosMes
LPARAMETERS fecha_dsd,fecha_hst
SET date BRITISH
USE data1/cuota
USE data1/donacion
USE data1/otros_aportes
USE data1/cuenta
USE data1/monto
USE data1/adherente
USE data1/categoria
SELECT nro_comprobante,fecha_pago as fecha, id_cuenta, anulada, c.nro_adherente, id_categoria FROM cuota as c INNER JOIN  adherente as a ON c.nro_adherente=a.nro_adherente WHERE anulada=0 INTO CURSOR cuotas 
SELECT c.id_categoria,MAX(fecha_desde)ultima_fecha FROM monto as m INNER jOIN cuotas as c ON m.id_categoria=c.id_categoria GROUP BY c.id_categoria WHERE fecha_desde<=fecha INTO CURSOR fecha_monto
SELECT * FROM cuotas as c INNER JOIN fecha_monto as fm ON c.id_categoria=fm.id_categoria INTO CURSOR t
SELECT nro_comprobante,fecha,monto,id_cuenta FROM t as a INNER JOIN monto as m ON a.id_categoria_b=m.id_categoria AND a.ultima_fecha=m.fecha_desde INTO CURSOR s

SELECT nro_comprobante,fecha,monto,descripcion as 'imputacion' FROM s INNER JOIN cuenta ON s.id_cuenta=cuenta.id_cuenta INTO CURSOR r

SELECT * FROM r UNION SELECT nro_comprobante, fecha, monto, descripcion as 'imputacion' FROM otros_aportes INNER JOIN cuenta ON otros_aportes.id_cuenta=cuenta.id_cuenta UNION SELECT nro_comprobante, fecha, monto, descripcion as 'imputacion' FROM donacion INNER JOIN cuenta ON donacion.id_cuenta=cuenta.id_cuenta WHERE anulada=0 INTO CURSOR resu

SELECT * FROM resu WHERE fecha>=CTOD(fecha_dsd) AND fecha<=CTOD(fecha_hst) INTO CURSOR resultado
LOCAL xml
CURSORTOXML("resultado","xml",1,48)
USE IN cuota
USE IN donacion
USE IN otros_aportes
USE IN cuenta
USE IN monto
USE IN adherente
USE IN categoria
USE IN cuotas
USE IN fecha_monto
USE IN t
USE IN r
USE IN resu
USE IN resultado
USE IN s
RETURN xml
ENDPROC


PROCEDURE anular_otros_aportes
LPARAMETERS nrocom,anul
USE data1/otros_aportes
UPDATE otros_aportes SET anulada=anul WHERE nro_comprobante= nrocom
USE IN otros_aportes
ENDPROC

ENDDEFINE

